exit関数は、プロセスを正常終了します。(main関数の場合は、return文で帰っても同じです。)異常終了する場合は、abort関数を使用します。

#include <stdlib.h>
void aexit(int status);

statusは親プロセスへ返す値(終了ステータスやリターンコードと呼ばれているもの)を指定します。指定できる値は0~255までの値です。

戻り値はありません。

終了ステータスとして使える、EXIT_SUCCESSとEXIT_FAILUREという2つの定数が定義されています。それぞれ正常終了と異常終了を示す値として使用することができます。

プログラム 例

#include <stdio.h>
#include <stdlib.h>
#define SIZE 1024

int main()
{
  FILE    *fp;
  char    buff[SIZE];

  if ((fp = fopen('temp_1.txt', 'r')) == NULL) {
    printf('ファイルのオープンに失敗しました\n');
    exit(EXIT_FAILURE);
  }

  while(fgets(buff, SIZE, fp) != NULL) {
    printf('%s', buff);
  }
  fclose(fp);

  return EXIT_SUCCESS;
}

例の実行結果

echo $?は直前に実行したプログラムの終了ステータスを表示します。

$ ./exit.exe
Hello World!!.
Bye.
$ echo $?
0
$
$ mv temp_1.txt remp_bk.txt
$
$ ./exit.exe
ファイルのオープンに失敗しました
$ echo $?
1
$